package com.api.tiny.mirror.service.product.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.tiny.mirror.service.product.enums.AbilityLhcCategoryEnum;
import java.math.BigDecimal;
import java.util.List;
import lombok.Getter;
import lombok.Setter;

/**
 * @Author: liujsh
 * @Description:
 * @Date: Create in 2023/10/19
 */
@Getter
@Setter
public class AbilityLhcVO {

  @JsonProperty(value = "rule")
  private String rule;
  @JsonProperty(value = "play_list")
  private List<PlayVO> playList;
  @JsonProperty(value = "play_list_picker")
  private List<PlayPickerVO> playListPicker;

  @Getter
  @Setter
  public static class PlayVO {

    // 唯一标识
    @JsonProperty(value = "code")
    private String code;
    // 规则描述
    @JsonProperty(value = "rule")
    private String rule;
    // 分类
    @JsonProperty(value = "category")
    private AbilityLhcCategoryEnum category;
    // 玩法名称
    @JsonProperty(value = "play")
    private String play;
    // 赔率
    @JsonProperty(value = "odds")
    private BigDecimal odds;
    // 限制个数
    @JsonProperty(value = "limit")
    private Integer limit;
    // 项目
    @JsonProperty(value = "item_list")
    private List<PlayItemVO> itemList;
    // 子玩法
    @JsonProperty(value = "children_list")
    private List<PlayVO> childrenList;
    // 返利百分比
    @JsonProperty(value = "reward_percent")
    private BigDecimal rewardPercent;
  }

  @Getter
  @Setter
  public static class PlayItemVO {

    @JsonProperty(value = "item")
    private String item;
    // 赔率
    @JsonProperty(value = "odds")
    private BigDecimal odds;
  }

  @Getter
  @Setter
  public static class PlayPickerVO {

    @JsonProperty(value = "text")
    private String text;
    @JsonProperty(value = "value")
    private String value;
    @JsonProperty(value = "children")
    private List<PlayPickerVO> children;
  }
}
